package Thread.TurtleRabbit;
/**
 * @author: lqh
 * @description:
 * 四．示例三：龟兔赛跑问题
 * 龟兔赛跑：20米
 * 要求：
 *  1.兔子每秒0.5米的速度，每跑2米休息10秒，
 *  2.乌龟每秒跑0.1米，不休息
 *  3.其中一个跑到终点后另一个不跑了！
 * @program: Demo
 * @create: 2018-04-13 10:10
 **/
public abstract class Animal extends Thread{
    double len=20;
    public abstract void running();

    @Override
    public void run() {
        super.run();
        while (len>0){
            running();
        }
    }

    //在需要回调数据的地方（两个子类需要），声明一个接口
    public static interface Calltoback{
        public void win();
    }

    //2.创建接口对象
    public Calltoback calltoback;

    public static void main(String[] args) {
        Rabbit rabbit = new Rabbit();
        Turtle turtle = new Turtle();
        rabbit.calltoback = new CalltobackImpl(turtle);
        turtle.calltoback = new CalltobackImpl(rabbit);
        rabbit.start();
        turtle.start();
    }
}


